package co.yixiang.modules.monitor.config;

import co.yixiang.modules.monitor.service.VisitsService;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;

/**
 * 初始化站点统计
 * 该类实现了ApplicationRunner接口，允许在Spring Boot应用启动后执行特定的初始化操作
 * 其主要作用是初始化当天的站点访问统计，如果当天的统计已经存在，则跳过初始化
 */
//@Component
public class VisitsInitialization implements ApplicationRunner {

    /**
     * 注入VisitsService服务，用于处理访问统计相关操作
     */
    private final VisitsService visitsService;

    /**
     * 构造方法，初始化VisitsService
     *
     * @param visitsService VisitsService实例，用于处理访问统计
     */
    public VisitsInitialization(VisitsService visitsService) {
        this.visitsService = visitsService;
    }

    /**
     * 在应用启动后运行该方法，用于初始化当天的站点访问统计
     * 如果当天的统计已经存在，则跳过初始化
     *
     * @param args 应用启动参数，未使用
     */
    @Override
    public void run(ApplicationArguments args){
        System.out.println("--------------- 初始化站点统计，如果存在今日统计则跳过 ---------------");
        visitsService.save();
        System.out.println("--------------- 初始化站点统计完成 ---------------");
    }
}
